﻿#region Código Gerado Pela Fábrica de Software (Using)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using itau.im.entidade;
using EnterpriseLibraryWrapper;
using System.Data;
#endregion

#region Código Gerado Pela Fábrica de Software (Namespace)
namespace itau.im.dado
{
    #region Código Gerado Pela Fábrica de Software (Classe)
    /// <summary>
    /// **************************************************************************************************<BR/>
    /// AUTOR           : Fábrica de Software                                                             <BR/>
    /// DATA DE CRIAÇÃO : 03/08/2010                                                                      <BR/>
    /// ALTERADO POR    :                                                                                 <BR/>
    /// DATA ALTERAÇÃO  :                                                                                 <BR/>
    /// OBJETIVO        : Classe "MesaDB" que implementa a interface "IMesaDB".                           <BR/>
    /// **************************************************************************************************<BR/>
    /// </summary>
    public class MesaDB : IMesaDB
    {
        #region Código Gerado Pela Fábrica de Software (Métodos)
        /// <summary>
        /// **************************************************************************************************<BR/>
        /// AUTOR           : Fábrica de Software                                                             <BR/>
        /// DATA DE CRIAÇÃO : 03/08/2010                                                                      <BR/>
        /// ALTERADO POR    :                                                                                 <BR/>
        /// DATA ALTERAÇÃO  :                                                                                 <BR/>
        /// OBJETIVO        : Método que será implementado para retornar a consulta.                          <BR/>
        /// **************************************************************************************************<BR/> 
        /// </summary>
        /// <returns>Lista de objetos "SubMesa".</returns>
        public IList<SubMesa> ObterSubMesas(int codigoMesa)
        {
            //Declara e instancia o objeto
            List<SubMesa> lista = new List<SubMesa>();
            IDataAccessWrapper data = null;

            try
            {
                //Recupera o objeto de acesso a dados
                data = EnterpriseLibraryFactory.GetDataAccess();

                //Parametro de Entrada
                data.ParameterIn.Add(new ParameterInWrapper("@COD_MESA_OPER_TES", codigoMesa, DbType.Int16));

                //Recupera a consulta
                DataSet ds = data.ExecuteDataSet("DB2IM.IMSGX");

                //Verifica se é válido o retorno
                if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                {
                    //Percorre todos os registros da tabela
                    foreach (DataRow linha in ds.Tables[0].Rows)
                    {
                        //Monta e adiciona o objeto na lista
                        lista.Add(EntidadeFactory.getSubMesa(linha));
                    }
                }
            }
            catch (DadosException ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosDados");
            }
            catch (Exception ex)
            {
                EnterpriseLibraryFactory.GetExceptionHandler().HandleException(ex, "ErrosDados");
            }
            finally 
            {
                data.Dispose();
                data = null;
            }

            //Retorna a consulta
            return lista;
        }
        #endregion
    }
    #endregion
}
#endregion